<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>Index lifecycle | Elasticsearch Guide [7.7] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch Guide [7.7]">
<link rel="up" href="ilm-concepts.html" title="ILM concepts">
<link rel="prev" href="ilm-concepts.html" title="ILM concepts">
<link rel="next" href="index-rollover.html" title="Rollover">
<meta name="DC.type" content="Learn/Docs/Elasticsearch/Reference/7.7">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="7.7">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="index-lifecycle-management.html">ILM: Manage the index lifecycle</a></span>
»
<span class="breadcrumb-link"><a href="ilm-concepts.html">ILM concepts</a></span>
»
<span class="breadcrumb-node">Index lifecycle</span>
</div>
<div class="navheader">
<span class="prev">
<a href="ilm-concepts.html">« ILM concepts</a>
</span>
<span class="next">
<a href="index-rollover.html">Rollover »</a>
</span>
</div>
<div class="section xpack">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="ilm-index-lifecycle"></a>Index lifecycle<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ilm/ilm-index-lifecycle.asciidoc">edit</a><a class="xpack_tag" href="/subscriptions"></a>
</h2>
</div></div></div>

<p>ILM defines four index lifecycle <em>phases</em>:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<span class="strong strong"><strong>Hot</strong></span>: The index is actively being updated and queried.
</li>
<li class="listitem">
<span class="strong strong"><strong>Warm</strong></span>: The index is no longer being updated but is still being queried.
</li>
<li class="listitem">
<span class="strong strong"><strong>Cold</strong></span>: The index is no longer being updated and is seldom queried. The
information still needs to be searchable, but it’s okay if those queries are
slower.
</li>
<li class="listitem">
<span class="strong strong"><strong>Delete</strong></span>: The index is no longer needed and can safely be removed.
</li>
</ul>
</div>
<p>An index’s <em>lifecycle policy</em> specifies which phases
are applicable, what actions are performed in each phase,
and when it transitions between phases.</p>
<p>You can manually apply a lifecycle policy when you create an index.
For time series indices, you need to associate the lifecycle policy with
the index template used to create new indices in the series.
When an index rolls over, a manually-applied policy isn’t automatically applied to the new index.</p>
<h3>
<a id="ilm-phase-transitions"></a>Phase transitions<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ilm/ilm-index-lifecycle.asciidoc">edit</a>
</h3>
<p>ILM moves indices through the lifecycle according to their age.
To control the timing of these transitions, you set a <em>minimum age</em> for each phase.
For an index to move to the next phase, all actions in the current phase must be complete and
the index must be older than the minimum age of the next phase.</p>
<p>The minimum age defaults to zero, which causes ILM to move indices to the next phase
as soon as all actions in the current phase complete.</p>
<p>If an index has unallocated shards and the <a class="xref" href="cluster-health.html" title="Cluster health API">cluster health status</a> is yellow,
the index can still transition to the next phase according to its index lifecycle management policy.
However, because Elasticsearch can only perform certain clean up tasks on a green
cluster, there might be unexpected side effects.</p>
<p>To avoid increased disk usage and reliability issues,
address any cluster health problems in a timely fashion.</p>
<h3>
<a id="ilm-phase-execution"></a>Phase execution<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ilm/ilm-index-lifecycle.asciidoc">edit</a>
</h3>
<p>ILM controls the order in which the actions in a phase are executed and
what <em>steps</em> are executed to perform the necessary index operations for each action.</p>
<p>When an index enters a phase, ILM caches the phase definition in the index metadata.
This ensures that policy updates don’t put the index into a state where it can never exit the phase.
If changes can be safely applied, ILM updates the cached phase definition.
If they cannot, phase execution continues using the cached definition.</p>
<p>ILM runs periodically, checks to see if an index meets policy criteria,
and executes whatever steps are needed.
To avoid race conditions, ILM might need to run more than once to execute all of the steps
required to complete an action.
For example, if ILM determines that an index has met the rollover criteria,
it begins executing the steps required to complete the rollover action.
If it reaches a point where it is not safe to advance to the next step, execution stops.
The next time ILM runs, ILM picks up execution where it left off.
This means that even if <code class="literal">indices.lifecycle.poll_interval</code> is set to 10 minutes and an index meets
the rollover criteria, it could be 20 minutes before the rollover is complete.</p>
<h3>
<a id="ilm-phase-actions"></a>Phase actions<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/ilm/ilm-index-lifecycle.asciidoc">edit</a>
</h3>
<p>ILM supports the following actions in each phase.</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<p>Hot</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<a class="xref" href="ilm-set-priority.html" title="Set priority">Set Priority</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-unfollow.html" title="Unfollow">Unfollow</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-rollover.html" title="Rollover">Rollover</a>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>Warm</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<a class="xref" href="ilm-set-priority.html" title="Set priority">Set Priority</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-unfollow.html" title="Unfollow">Unfollow</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-readonly.html" title="Read only">Read-Only</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-allocate.html" title="Allocate">Allocate</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-shrink.html" title="Shrink">Shrink</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-forcemerge.html" title="Force merge">Force Merge</a>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>Cold</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<a class="xref" href="ilm-actions.html#ilm-set-priority-action">Set Priority</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-actions.html#ilm-unfollow-action">Unfollow</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-allocate.html" title="Allocate">Allocate</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-freeze.html" title="Freeze">Freeze</a>
</li>
</ul>
</div>
</li>
<li class="listitem">
<p>Delete</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
<a class="xref" href="ilm-actions.html#ilm-wait-for-snapshot-action">Wait For Snapshot</a>
</li>
<li class="listitem">
<a class="xref" href="ilm-delete.html" title="Delete">Delete</a>
</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
<div class="navfooter">
<span class="prev">
<a href="ilm-concepts.html">« ILM concepts</a>
</span>
<span class="next">
<a href="index-rollover.html">Rollover »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
